There are many techniques of collecting distributed data. Some techniques use a single wire protocol. This requires each node supplying data or information be addressed prior to obtaining information from it. This can cause delays in obtaining the information and the information between two nodes may be unrelated in time. Therefore, it is often desirable to obtain information from multiple nodes in parallel. The information obtained from all of the nodes may be obtained at the same time and conclusions may be made about inter-node conditions. In addition, parallel interfaces to multiple nodes, often increases the rate that all nodes can be sampled.
In a parallel scheme, you may have n nodes of k bits of information producing an n*k bit parallel result. Thus, node n may provide the information in, for example, bits [n*k−1, n−1] of the parallel result. There are several ways this information may be collected. One method is to have a k bit interconnect between the node and the receiver. Another method is to have an n*k bit interconnect that daisy chains (also spelled: daisychains and daisy-chains) from node to node and terminating at a receiver. This second method has the advantage that it often simplifies node to node connections, for example, using wires connecting the distributed nodes. Common examples of where daisy chain connections are used is FireWire (IEEE1394), SCSI (Small Computer System Interface), USB (Universal Serial Bus), etc.
When interconnecting daisy chained nodes it is also desirable to make each node the same in all respects so that they may be mass-produced and easily connected. A common way of making each node the same is by having the node always produce the bits at a common place in the parallel result, say [k−1,0], and shifting the incoming bits from the other nodes as follows: [(n−1)*k−1;0]→4[n*k−1,k].
This shifting by each node of the bits coming from other nodes allows each node to be physically the same and the position of the node in the daisy chain effectively defines the position of the data in the parallel result.
The daisy chain interconnection method often makes assembly of many nodes easy. One simply hooks the next node up to the previous one. The first node is hooked up to the receiver. This can continue up to n nodes. However, there is nothing to prevent hooking up more than n nodes. The result is that the information from the nodes farther from the receiver than the nth node is not going to reach the receiver and will be lost.
Thus, a common problem is determining the maximum number of devices that may be daisy chained together in a single chain or when that limit has been reached.